home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / alpha.arc / REGS.H < prev    next >
C/C++ Source or Header  |  1988-07-11  |  904b  |  38 lines

  1. union reg {
  2.     struct half {
  3.         char low;
  4.         char high;
  5.     } byte;
  6.     unsigned short word;
  7. };
  8. struct regs {
  9.     union reg ax,bx,cx,dx,si,di,ds,es;
  10. };
  11.  
  12. /* Macros to simulate Turbo-C style register pseudovariables */
  13. #define    _AX    regs.ax.word
  14. #define    _AL    regs.ax.byte.low
  15. #define    _AH    regs.ax.byte.high
  16. #define    _BX    regs.bx.word
  17. #define    _BL    regs.bx.byte.low
  18. #define    _BH    regs.bx.byte.high
  19. #define    _CX    regs.cx.word
  20. #define    _CL    regs.cx.byte.low
  21. #define    _CH    regs.cx.byte.high
  22. #define    _DX    regs.dx.word
  23. #define    _DL    regs.dx.byte.low
  24. #define    _DH    regs.dx.byte.high
  25. #define    _DI    regs.di.word
  26. #define    _SI    regs.si.word
  27. #define    _DS    regs.ds.word
  28. #define    _ES    regs.es.word
  29.  
  30. /* Segment number of pointer */
  31. #define    FP_SEG(x)    (sizeof(x) == 4 ? ((long)(x) >> 16) : getds())
  32. /* Offset of pointer */
  33. #define FP_OFF(x)    ((unsigned short)((long)(x) & 0xffff))
  34.  
  35. #define    FLAG_CARRY    (1 << 0)    /* Carry flag */
  36.  
  37.  
  38.